The sheer wealth of data stored in one place makes
the Registry convenient, but it also makes it very precious. If your
Registry went missing somehow, or if it got corrupted, Windows 7 simply
would not work. With that scary thought in mind, let’s take a moment to
run through several protective measures. The techniques in this section
should ensure that Windows 7 never goes down for the count because you
made a mistake while editing the Registry.
Preventing Other Folks from Messing with the Registry
Do
you share your computer with other people? How brave! In that case,
there’s a pretty good chance that you don’t want them to have access to
the Registry Editor. In Windows 7, User Account Control automatically
blocks Standard users unless they know an administrator’s password. For
other administrators, you can prevent any user from using the Registry
Editor by setting a group policy:
1. | Select Start, type gpedit.msc, and then press Enter.
|
2. | Open the User Configuration, Administrative Templates, System branch.
|
3. | Double-click the Prevent Access to Registry Editing Tools policy.
|
4. | Click Enabled.
|
5. | In the Disable Regedit from Running Silently? list, click Yes.
|
6. | Click OK.
|
Note that you
won’t be able to use the Registry Editor, either. However, you can
overcome that by temporarily disabling this policy prior to running the
Registry Editor. Even better, you can run the following script, which
toggles the Registry Editor between enabled and disabled:
Note
The file that contains the code for this script (ToggleRegistryEditing.vbs) is available on my website at www.mcfedries.com/Windows7Unleashed.
Set objWshShell = WScript.CreateObject("WScript.Shell")
'
' Get the current setting
'
intDisableRegistryTools = Int(objWshShell.RegRead("HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System\DisableRegistryTools"))
'
' Toggle the current setting
'
If intDisableRegistryTools = 0 Then
objWshShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System\DisableRegistryTools", 2, "REG_DWORD"
WScript.Echo "The Registry Editor is disabled."
Else
objWshShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System\DisableRegistryTools", 0, "REG_DWORD"
WScript.Echo "The Registry Editor is enabled."
End If
Note that you need to run this script as the administrator.
Backing Up the Registry
Windows 7 maintains what is known as the system state:
the crucial system files that Windows 7 requires to operate properly.
Included in the system state are the files used during system startup,
the Windows 7–protected system files, and, naturally, the Registry
files. Windows 7’s Backup utility has a feature called a system image
backup that enables you to easily back up the current system state, so
it’s probably the most straightforward way to create a backup copy of
the Registry should anything go wrong.
Saving the Current Registry State with System Restore
Another
easy way to save the current Registry configuration is to use Windows
7’s System Restore utility. This program takes a snapshot of your
system’s current state, including the Registry. If anything should go
wrong with your system, the program enables you to restore a previous
configuration. It’s a good idea to set a system restore point before
doing any work on the Registry.
Tip
Another
way to protect the Registry is to ensure that its keys have the
appropriate permissions. By default, Windows 7 gives members of the
Administrators group full control over the Registry. A standard user
gets Full Control permission only over the HKCU
key when that user is logged on and Read permissions over the rest of
the Registry. To adjust the permissions, right-click the key in the
Registry Editor, and then click Permissions. Make sure that only
administrators have the Full Control check box activated.
Protecting Keys by Exporting Them to Disk
If
you’re just making a small change to the Registry, backing up all of
its files might seem like overkill. Another approach is to back up only
the part of the Registry that you’re working on. For example, if you’re
about to make changes within the HKEY_CURRENT_USER key, you could back up just that key, or even a subkey within HKCU. You do that by exporting the key’s data to a registration file, which is a text file that uses the .reg extension. That way, if the change causes a problem, you can import the .reg file back into the Registry to restore things the way they were.
Exporting the Entire Registry to a .reg File
The easiest way to protect the entire Registry is to export the whole thing to a .reg
file on a separate hard drive or network share. Note that the resulting
file will be about 150MB on a default Windows 7 system, and possibly
twice that size (or more) if you have lots of other programs installed,
so make sure the target destination has enough free space.
Here are the steps to follow:
1. | Open the Registry Editor.
|
2. | Select File, Export to display the Export Registry File dialog box.
|
3. | Select a location for the file.
|
4. | Use the File Name text box to type a name for the file.
|
5. | Activate the All option.
|
6. | Click Save.
|
Exporting a Key to a .reg File
Here are the steps to follow to export a key to a registration file:
1. | Open the Registry Editor and select the key you want to export.
|
2. | Select File, Export to display the Export Registry File dialog box.
|
3. | Select a location for the file.
|
4. | Use the File Name text box to type a name for the file.
|
5. | Activate the Selected Branch option.
|
6. | Click Save.
|
One
common Registry scenario is to make a change to Windows 7 using a tool
such as the Group Policy Editor, and then try and find which Registry
setting (if any) was affected by the change. However, because of the
sheer size of the Registry, this is usually a needle-in-a-haystack
exercise that ends in frustration. One way around this is to export
some or all the Registry before making the change and then export the
same key or keys after making the change. You can then use the FC (file
compare) utility at the command prompt to find out where the two files
differ. Here’s the FC syntax to use for this:
FC /U pre_edit.reg post-edit.reg > reg_changes.txt
Here, change pre_edit.reg to the name of the registration file you exported before editing the Registry; change post_edit.reg to the name of the registration file you exported after editing the Registry; and change reg_changes.txt to the name of a text file to which the FC output is redirected. Note that the /U switch is required because registration files use the Unicode character set.
|
Importing a .reg File
If you need to restore the key that you backed up to a registration file, follow these steps:
1. | Open the Registry Editor.
|
2. | Select File, Import to display the Import Registry File dialog box.
|
3. | Find and select the file you want to import.
|
4. | Click Open.
|
5. | When Windows 7 tells you the information has been entered into the Registry, click OK.
|
Note
You also can import a .reg file by locating it in Windows Explorer and then double-clicking the file.
Caution
Many applications ship with their own .reg
files for updating the Registry. Unless you’re sure that you want to
import these files, avoid double-clicking them. They might end up
overwriting existing settings and causing problems with your system.